<!DOCTYPE html>

<html>
<head>
  <title>starve</title>

  <link rel="stylesheet" href="css/bootstrap.min.css">
  <link rel="stylesheet" href="css/bootstrap-table.min.css">

  <script src="js/jquery-2.1.1.js"></script>
  <script src="js/bootstrap.min.js"></script>
  <script src="js/bootstrap-table.min.js"></script>

  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <link rel="shortcut icon" href="img/deerclopse.png" type="image/x-icon" />

  <script>
      $(document).ready(function(){

        $('#error_logs').bootstrapTable({
          url: 'geterrorlogs?server_type=' + $("#server_type").text(),         //请求后台的URL（*）
          method: 'get',                      //请求方式（*）
          striped : true, //是否显示行间隔色
          pageNumber : 1, //初始化加载第一页
          pagination : true,//是否分页
          sidePagination : 'client',//server:服务器端分页|client：前端分页
          pageSize : 6,//单页记录数
          pageList : [ 6, 12],//可选择单页记录数
          showRefresh : true,//刷新按钮

          // toolbar: '#toolbar',                //工具按钮用哪个容器
          // striped: true,                      //是否显示行间隔色
          // cache: false,                       //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
          // pagination: true,                   //是否显示分页（*）
          // sortable: false,                     //是否启用排序
          // sortOrder: "asc",                   //排序方式
          // queryParams: oTableInit.queryParams,//传递参数（*）
          // sidePagination: "client",           //分页方式：client客户端分页，server服务端分页（*）
          // pageNumber:1,                       //初始化加载第一页，默认第一页
          // pageSize: 10,                       //每页的记录行数（*）
          // pageList: [10, 25, 50, 100],        //可供选择的每页的行数（*）
          // search: true,                       //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
          // strictSearch: true,
          // showColumns: true,                  //是否显示所有的列
          // showRefresh: true,                  //是否显示刷新按钮
          // minimumCountColumns: 2,             //最少允许的列数
          clickToSelect: false,                //是否启用点击选中行
          // height: 500,                        //行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
          // uniqueId: "ID",                     //每一行的唯一标识，一般为主键列
          // showToggle:true,                    //是否显示详细视图和列表视图的切换按钮
          // cardView: false,                    //是否显示详细视图
          // detailView: false,                   //是否显示父子表
          columns: [{
            checkbox: false
          }, {
            field: 'Name',
            title: '文件名'
          }, {
            field: 'Size',
            title: '大小'
          }, {
            field: 'ModifyTime',
            title: '修改时间'
          },
          {
            field: 'View',
            title: '查看',
            width: 120,
            align: 'center',
            valign: 'middle',
            formatter: actionFormatter,
          },]
        });

      // $("#server_type").val(ServerTypePath[$("#server_type").val()]);

        let resultClickCount = 0;
        $("#result").click(function(){
          resultClickCount++;
          if (resultClickCount >= 5) {
            $("#btn_restart_or_hotupdate").attr("disabled", false);
            resultClickCount = 0;
          }
        });

        // setInterval(function() {
        //   location.reload();
        // }, 20000);


    });

    //操作栏的格式化,value代表当前单元格中的值，row代表当前行数据，index表示当前行的下标
    function actionFormatter(value, row, index) {
      return "<a href='" + value + "' target='_blank'><i class='icon-user'></i>查看</a>";
    }

    function NotifyClient(callback, clickId, execFunc) {

      let serverType = $("#server_type").text();

      $.getJSON('./' + "notifyclient?" + 'server_type=' + serverType, function(result, status){
        if (status != "success" || result == null || result.Result == null) {
          $("result").val(result);
          return
        }
        var resultObj = JSON.parse(result.Result);
        if (resultObj.body == null || resultObj.head.Result !== 0) {
          $("result").val(result);
          return
        }

        $("#result").val(result.Result);
        if(confirm('跑马灯发送成功，是否重启？')){
          callback(clickId, execFunc);
        }
      });
    }

    function RestartOrHotupdateServerImpl(clickId, execFunc) {

      let countDownTime = 20;
      let serverType = $("#server_type").text();
      let key = "099104101110103109105097111";
      let originalBtnText = $("#" + clickId).text();

      $("#result").val("正在执行，请稍等......");
      $("#" + clickId).attr("disabled", true);
      let countDownInternalId = setInterval(function(){
        $("#" + clickId).text(countDownTime--);
        if (countDownTime < 0) {
          clearInterval(countDownInternalId);
          $("#" + clickId).attr("disabled", false);
          $("#" + clickId).text(originalBtnText);
        }
      }, 1000);

      $.getJSON('./' + "restartorhotupdate" + '?key=' + key + ';server_type=' + serverType + ";exec_func=" + execFunc + ";call=1",function(result, status){
        if (status != "success") {
          $("result").val("GET请求出错，请联系服务器......");
          return
        }
        $("#result").val(result.Result);
        setTimeout(function(){
          let alertStr = "执行失败，猜不出原因就截屏联系程序";
          if (result.Result != null && result.Result.search("success") != -1) {
            alertStr = "恭喜您，执行成功！";
          }
          alert(alertStr);
        }, 500);
      });
    }


    function RestartOrHotupdateServer(clickId, execFunc) {

      if (execFunc === 'restart') {
        NotifyClient(RestartOrHotupdateServerImpl, clickId, execFunc);
      } else {
        RestartOrHotupdateServerImpl(clickId, execFunc);
      }

    }
  </script>
</head>

{{/*<body background="img/starve-bkg.png" style="opacity: 60%">*/}}
<body style="opacity: 60%">
  <div class="container-fluid">
    <div class="row">
      <div class="jumbotron text-center" style="margin-bottom:0;">
        <h1><a href="/">饥荒服务器</a></h1>
      </div>
    </div>
    <div class="row">
      <div class="col-md-2" style="background: #222222;height: 600px">
        <div class="sidebar-menu">
          <a href="#userMeun" class="nav-header menu-first" data-toggle="collapse"><i class="icon-user-md icon-large"></i> 内网公共</a>
          <ul id="userMeun" class="nav nav-list menu-second">
            <li><a href="restartorhotupdate?server_type=common;exec_func=hotupdate"><i class="icon-user"></i> 热更</a></li>
            <li><a href="restartorhotupdate?server_type=common;exec_func=restart"><i class="icon-edit"></i> 重启</a></li>
            <li><a href="errorlog?server_type=common"><i class="icon-trash"></i> 日志</a></li>
          </ul><br/>
          <a href="#articleMenu" class="nav-header menu-first" data-toggle="collapse"><i class="icon-book icon-large"></i> CBTB</a>
          <ul id="articleMenu" class="nav nav-list menu-second">
            <li><a href="restartorhotupdate?server_type=cbtb;exec_func=hotupdate"><i class="icon-user"></i> 热更</a></li>
            <li><a href="restartorhotupdate?server_type=cbtb;exec_func=restart"><i class="icon-edit"></i> 重启</a></li>
            <li><a href="errorlog?server_type=cbtb"><i class="icon-trash"></i> 日志</a></li>
          </ul>
        </div>
      </div>
      <div class="col-md-2">
        <h4 id="nav_addr">{{ .NavAddr }}</h4>
      </div>
      <div class="col-md-10">
        <div class="container">
          {{ if .ServerType }}
            <h4 id="server_type" style="visibility: hidden">{{ .ServerType }}</h4>
            {{if .ErrorLogs}}
              <table id="error_logs"></table>
              {{/*<table class="table table-bordered" id="error_logs">*/}}
                {{/*<thead>*/}}
                {{/*<tr>*/}}
                  {{/*<th>文件名</th>*/}}
                  {{/*<th>大小</th>*/}}
                  {{/*<th>修改日期</th>*/}}
                  {{/*<th></th>*/}}
                {{/*</tr>*/}}
                {{/*</thead>*/}}
                {{/*<tbody>*/}}
                {{/*{{ $servertype := .ServerType }}*/}}
                {{/*{{ range .ErrorLogs }}*/}}
                  {{/*<tr>*/}}
                    {{/*<td>{{ .Name }}</td>*/}}
                    {{/*<td>{{ .Size }}</td>*/}}
                    {{/*<td>{{ .ModifyTime }}</td>*/}}
                    {{/*<td><a href="errorlogcontent?server_type={{ $servertype }};file_name={{ .Name }}" ><i class="icon-user"></i>查看</a></td>*/}}
                  {{/*</tr>*/}}
                {{/*{{ end }}*/}}
                {{/*</tbody>*/}}
              {{/*</table>*/}}
            {{else}}
              <div class="btn-group btn-group-lg">
                <button class="btn btn-default" style="width: 1000px;" onclick="RestartOrHotupdateServer(this.id, {{ .ExecFunc }})" id="btn_restart_or_hotupdate" {{if eq .ExecFunc "restart"}}disabled="disabled"{{end}}>执行</button>
              </div><br/><br/>
              <div>
                <textarea readonly id="result" style="width: 1000px;height: 400px;"></textarea>
              </div>
            {{end}}
          {{ else }}
          {{ end }}
        </div>
      </div>
    </div>
    <div class="row">
      <div class="jumbotron text-center" style="margin-bottom:0">
        <p>版权所有：饥荒服务器</p>
      </div>
    </div>
  </div>

</body>
</html>
